package com.taotao.wifepojie.test;


import java.util.Arrays;

/**
 * @author wangjin
 * @title: SearchNumber
 * @projectName
 * @description: 时间复杂度为O()=O(logn)
 * @date 2022/4/18 0018 16:33
 */
public class SearchNumber {

    //被搜索数据的大小
    private  static  final int size=1000;

    public static void main(String[] args) {
        //添加测试数据
        int[] data=new int[size];
        for (int i = 0; i <data.length ; i++) {
            data[i]=i+1;
        }
        data[999]=62;
        result(data);
    }

    public static void result(int data[]){
        //排序
        Arrays.sort(data);
        for (int i=0;i<data.length;i++){
            int target =data[i];
            data[i]=0;
            int result =binaryFind(data,target);
            if(result !=-1){
                System.out.println("相同元素为："+data[result]);
                break;
            }
        }
    }
 /**
  * @Author wangjin
  * @Description //二分搜索算法实现
  * @Date 2022/4/18 0018
  * @Param [data, target] 数据集合，搜索的数据
  * @return int 返回找到的数据的位置，返回-1表示没有找到
  **/
    public static int binaryFind(int[] data, int target) {
        int satrt =0;
        int end=data.length-1;
        while (satrt <=end){
            int middle=(satrt+end) /2;
            if(target ==data[middle]){
                return middle;
            }
            if(target >=data[middle]){
                satrt =middle+1;
            }else{
                end=middle-1;
            }
        }

        return -1;

    }
}
